在Java中,如何计算字符串开头出现的字符数 1 月,1 周 Questions & Answers 289 我有一个类似于这个,,,foo,bar的字符串,我需要在java中计算字符串开头的“,”的数量,有什么想法吗
# 1 楼答案 您还可以使用regexp: public static int countCommasAtBegin(String str) { Matcher commas = Pattern.compile("^,*").matcher(str); if (commas.find()) { return commas.group().length(); } else { return 0; } } 但对于这种琐碎的任务,我更喜欢使用简单循环
# 4 楼答案 有一个counter变量,用于统计出现的次数。然后循环遍历整个String,使用charAt(i)获得位置i处的char。测试它是否等于charAt(0)。如果是,则增量counter,如果不是,则增量break退出循环
# 5 楼答案 这个快而脏的解决方案对我有效 public static void main(String[] args) { String s = ",,,foo,bar"; int count = 0; for (int i = 0; i < s.length() ; i++) { if (s.charAt(i) != ',') break; count++; } System.out.println("count " + count); } 更新:刚刚意识到您只需要在字符串的开头计算“,”而不是中间。我已经更新了代码来做到这一点
# 1 楼答案
您还可以使用regexp:
但对于这种琐碎的任务,我更喜欢使用简单循环
# 2 楼答案
如果已知起始字符,则构建一个正则表达式模式并获取第一个组。第一组字符串将包含所需序列的精确匹配,此字符串的长度是结果计数
# 3 楼答案
一个简单的循环(while或for)包含一个if,该if具有一个相等的条件,即如果为true,则递增一个计数器就足够了
# 4 楼答案
有一个
counter
变量,用于统计出现的次数。然后循环遍历整个String
,使用charAt(i)
获得位置i
处的char
。测试它是否等于charAt(0)
。如果是,则增量counter
,如果不是,则增量break
退出循环# 5 楼答案
这个快而脏的解决方案对我有效
更新:刚刚意识到您只需要在字符串的开头计算“,”而不是中间。我已经更新了代码来做到这一点
# 6 楼答案
看一下String javadoc。它包含可用于获取字符串长度和特定位置字符的方法